<html>

<head>
    <title>声明、实例化和初始化对象</title>
</head>

<body>
    <table width=100%>
        <tr>
            <td align=left>
                <a href="objects.html"><img src=../../images/PreviousArrow.gif width=26 height=26 align=bottom border=0
                        alt="Previous | "></a><a href="static.html"><img src=../../images/NextArrow.gif width=26
                        height=26 align=bottom border=0 alt="Next | "></a><a href="../../index.html"><img
                        src=../../images/WayUpArrow.gif width=26 height=26 align=bottom border=0
                        alt="Trail Map | "></a><a href="../index.html"><img src=../../images/javaHeader.gif width=26
                        height=26 align=bottom border=0 alt="Writing Java Programs | "></a>
            <td>
            <td align=right>
                <a href="index.html"><strong><em>Java应用程序剖析</em></strong></a>
            </td>
        </tr>
    </table>
    <p>
        <hr size=4>

    <h2>
        声明、实例化和初始化对象
    </h2>
    <p>
    <blockquote>

        <blockquote>
            <pre>
<strong>import java.util.Date;</strong>
class DateApp {
    public static void main (String args[]) {
        <strong>Date today = new Date();</strong>
        System.out.println(today);
    }
}
</pre>
        </blockquote>
        <code>DateApp</code>程序中的<code>main()</code>方法创建了一个名为<code>today</code>的Date对象。这一行代码执行了三个操作：声明、实例化和初始化。<code>Date today</code>告诉编译器<code>today</code>是一个对象的引用，它的类型是Date，<code>new</code>操作符实例化了一个新的Date对象，<code>Date()</code>初始化了这个对象。
        <h4>声明对象</h4>
        <blockquote>
            正如上面你所看到的那样，对象的声明可以作为对象创建的一部分，就像这样
            <blockquote>
                <pre>
Date today;
</pre>
            </blockquote>
            无论哪种方式，声明的形式都是
            <blockquote>
                <pre>
<em>类型 名称</em>
</pre>
            </blockquote>
            这里 <em>类型</em> 既可以是一个简单数据类型，像int、float或者boolean，也可以是一个复杂数据类型，例如类类型(比如Date类)<em>名称</em> 是对象的名称。声明只需通知编译器您将使用<em>名称</em>来引用类型为<em>类型</em>的变量。<strong>声明不会实例化对象</strong>要实例化Date对象或任何其他对象，请使用<code>new</code>运算符。
        </blockquote>

        <h4>实例化对象</h4>
        <blockquote>
            <code>new</code>运算符通过为新对象分配内存来实例化该对象。<code>new</code>需要一个参数：要创建的对象的<em>构造函数方法</em>。构造函数方法负责初始化新对象。
        </blockquote>

        <h4>初始化对象</h4>
        <blockquote>
            类提供构造函数方法来初始化该类型的新对象。在类声明中，构造函数可以与其他方法区分开来，因为它们与类同名且没有返回类型。例如，DateApp程序中使用的Date构造函数的方法签名为
            <blockquote>
                <pre>
Date()
</pre>
            </blockquote>
            一个构造器，如果像上面所展示的那样，没有参数，这种构造器被称为<em>默认构造器</em>，像Date一样，大多数类拥有至少一个构造器——默认构造器。
            然而，类可以拥有多个构造器，所有的构造器都拥有相同的名称，但是参数的数量或种类不同。比如，Date类拥有一个需要三个整数的构造器：
            <blockquote>
                <pre>
Date(int year, int month, int day)
</pre>
            </blockquote>
            将新日期初始化为三个参数指定的年、月和日。
        </blockquote>

    </blockquote>
    <p>
        <hr size=4>
    <p>
    <table width=100%>
        <tr>
            <td align=left>
                <a href="objects.html"><img src=../../images/PreviousArrow.gif width=26 height=26 align=top border=0
                        alt="Previous | "></a><a href="static.html"><img src=../../images/NextArrow.gif width=26
                        height=26 align=top border=0 alt="Next | "></a><a href="../../index.html"><img
                        src=../../images/WayUpArrow.gif width=26 height=26 align=top border=0 alt="Trail Map | "></a><a
                    href="../index.html"><img src=../../images/javaHeader.gif width=26 height=26 align=top border=0
                        alt="Writing Java Programs | "></a>
            <td>
            <td align=right>
                <a href="index.html"><strong><em>Java应用程序剖析</em></strong></a>
            </td>
        </tr>
    </table>
</body>

</html>